Web项目中数据导出Excel的实现方案

您所在的位置:网站首页 javaweb导出的excel 版本 Web项目中数据导出Excel的实现方案

Web项目中数据导出Excel的实现方案

2023-07-27 23:43| 来源: 网络整理| 查看: 265

 

记录是为了更好的成长! 

 

废话不多说,直接进入主题:数据导出到excel表格的方式很多,具体的还需要看项目要求,合理选择,导出excel表格可以在前端对table中的内容通过js进行导出,在后台的话可以通过java代码进行导出。

 

1、通过js将table中的数据导出到excel 手写原生js代码(这种方式可以百度找js代码,网上都可以找到) 使用jquery-table2excel插件  (获取最新版本的地址为:https://github.com/rainabba/jquery-table2excel )

      需要用到jquery和jquery_table2excel两个js,附上一段我做demo时的源码:

DOCTYPE html> 编号 姓名 年龄 地址 用户名 邮箱 手机号 电话号码 编辑 编号 姓名 年龄 地址 用户名 邮箱 手机号 电话号码 编辑 导出excel表格 $(function() { $(".btn").click(function(){ $(".table2excel").table2excel({ // 不被导出的表格行的CSS class类 exclude: ".noExl", exclude:".ttt", // 导出的Excel文档的名称 name: "Excel Document Name", // Excel文件的名称 filename: "test", //文件后缀名 fileext: ".xls", //是否排除导出图片 exclude_img: false, //是否排除导出超链接 exclude_links: false, //是否排除导出输入框中的内容 exclude_inputs: false }); }); });

注意:使用jquery.table2Excel插件导出文件时,文件导出成功之后js会重新请求到这个页面的路径,请确保参数不为null ;

比如请求RequestMapping("index") 之后来到index页面进行导出,导出成功之后js会再去请求 RequestMapping("index") ,然后继续来index页面,如果控制层的方法中有参数的话,请确保参数不为null,否则导出完之后的请求会出错。

2、通过java代码实现导出excel,(后端实现方式不止一种,我这里用org.apache.poi来实现) 

    POI有两种实现方式:HSSF和XSSF

    HSSF是POI工程对Excel 97(-2007)文件操作的纯Java实现     XSSF是POI工程对Excel 2007 OOXML (.xlsx)文件操作的纯Java实现 

      从POI 3.8版本开始,提供了一种基于XSSF的低内存占用的API----SXSSF (这种没用过)

    引入mavan:

org.apache.poi poi 3.17

    附上我的java代码:

public class ExcelUtil { /** * 导出Excel * @param sheetName sheet名称 * @param title 标题 * @param values 内容 * @param wb HSSFWorkbook对象 * @return */ public static HSSFWorkbook getHSSFWorkbook(String sheetName,String []title,String [][]values, HSSFWorkbook wb){ // 第一步,创建一个HSSFWorkbook,对应一个Excel文件 if(wb == null){ wb = new HSSFWorkbook(); } // 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet HSSFSheet sheet = wb.createSheet(sheetName); // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制 HSSFRow row = sheet.createRow(0); // 第四步,创建单元格,并设置值表头 设置表头居中 HSSFCellStyle style = wb.createCellStyle(); style.setAlignment(HorizontalAlignment.CENTER_SELECTION);; // 创建一个居中格式 //声明列对象 HSSFCell cell = null; //创建标题 for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3